package edu.ccut.saturn.core;

import java.util.Iterator;
import java.util.Properties;

/**
 * Saturn属性服务
 * 
 * 通过该服务可以设置Saturn工程中的全局属性信息
 * 
 * @author LeslieGu
 */
public interface IPropertiesService {
	
	/**
	 * 获得属性
	 * 线程安全
	 * @param name
	 * @return
	 */
	public String getProperty(String name);
	
	/**
	 * 获得属性对象
	 * 
	 * @param name
	 * @return
	 */
	public Object getPropertyObject(String name);
	
	/**
	 * 设置属性对象
	 * 
	 * @param name
	 * @param value
	 */
	public void setPropertyObject(String name, Object value);
	
	/**
	 * 设置属性信息
	 * 
	 * 线程安全
	 * @param name
	 * @param value
	 * @return
	 */
	public void setProperty(String name, String value);

	/**
	 * 获得所有属性名称
	 * @return
	 */
	public Iterator<?> getPropertyNames();
	
	/**
	 * 添加属性信息
	 * 
	 * @param properties
	 */
	public void addProperties(Properties properties);
}
